package plannegocio.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

import plannegocio.excepcion.DAOExcepcion;
import plannegocio.modelo.VentaPlan;
import plannegocio.util.ConexionBD;

public class VentaPlanDAO extends BaseDAO {

	public VentaPlan insertaVentaPlan(VentaPlan vo) throws DAOExcepcion {
		String query = "INSERT INTO tb_compraplan( num_tarjeta_visa,  fecha_caducidad,  codigo_verificac, direc_facturacion,personaID,planID)"
				+ "VALUES ( ?, ?, ?, ?, ?, ?);";
		
		String queryUpdate = "UPDATE tb_planNegocio SET estado ='C' WHERE PLANID = " + vo.getObjPlan().getPlanID();
		Connection con = null;
		PreparedStatement stmt = null;
		ResultSet rs = null;
	

		try {
			con = ConexionBD.obtenerConexion();

			stmt = con.prepareStatement(query);
			stmt.setString(1, vo.getNum_tarjeta_visa());
			String fecha="";
			Date fecha_caducidad = null;
			if (vo.getDirec_facturacion() != null) {
				SimpleDateFormat formateador = new SimpleDateFormat("dd/MM/yyyy");
				java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat(
						"yyyy-MM-dd");
				try {
					fecha_caducidad = formateador.parse(vo.getFecha_caducidad());
					fecha= sdf.format(fecha_caducidad);
				} catch (ParseException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
			
			stmt.setString(2, fecha);
			stmt.setString(3, vo.getCodigo_verificac());			
			stmt.setString(4,vo.getDirec_facturacion());
			stmt.setInt(5, vo.getObjPersona().getPersonaID());
			stmt.setInt(6, vo.getObjPlan().getPlanID());
			
			int i = stmt.executeUpdate();
			if (i != 1) {
				throw new SQLException("No se pudo insertar");
			}else{
				System.out.println(queryUpdate);
				stmt = con.prepareStatement(queryUpdate);
				int j = stmt.executeUpdate();
			}

		} catch (SQLException e) {
			System.err.println(e.getMessage());
			throw new DAOExcepcion(e.getMessage());
		} finally {
			this.cerrarResultSet(rs);
			this.cerrarStatement(stmt);
			this.cerrarConexion(con);
		}
		return vo;
	}

}
